package com.wuxi.common.config;


import com.wuxi.common.utils.ShardingUtil;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * 分表配置属性
 */
@Data
@Component
@ConfigurationProperties(prefix = "sharding")
public class ShardingProperties {

    // 需要分表的基础表名列表
    private List<String> tables = new ArrayList<>();

    // 分表策略，目前固定为month
    private String strategy = "month";

    // 自动创建表提前天数
    private int createAdvanceDays = 5;

    // 判断表是否需要分表
    public boolean isShardingTable(String tableName) {
        return tables.contains(ShardingUtil.extractBaseTableName(tableName));
    }
}
